package org.example.lethear.dto.file;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 文件DTO
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class FileDTO {
    
    private Long id;
    private String fileName;
    private String originalName;
    private String fileType;
    private Long fileSize;
    private String filePath;
    private String fileUrl;
    private String thumbnailUrl;
    private String uploadType; // avatar, post, comment, whisper
    private String description;
    private Boolean isPublic;
    private LocalDateTime createdAt;
    
    /**
     * 上传者信息
     */
    private UploaderInfo uploader;
    
    /**
     * 上传者信息内部类
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class UploaderInfo {
        private Long id;
        private String username;
        private String nickname;
    }
} 